"""
QQ儿歌播放器调试工具模块
提供开发和测试期间使用的调试功能
"""
import logging
import os
from PyQt5.QtCore import QTime, QObject, pyqtSignal

class 调试监控(QObject):
    """性能监控装饰器类"""
    def __init__(self, parent=None):
        super().__init__(parent)
        self.开始时间 = None
        
    def 开始计时(self):
        """启动性能计时器"""
        self.开始时间 = QTime.currentTime()
        
    def 结束计时(self, 操作名称=""):
        """结束计时并输出结果"""
        if self.开始时间 is not None:
            用时 = self.开始时间.elapsed(QTime.currentTime())
            logging.debug(f"{操作名称} 操作耗时: {用时}ms")
            return 用时
        return -1

class 文件操作监控:
    """文件操作监控装饰器"""
    def __init__(self, func):
        self.func = func
        
    def __call__(self, *args, **kwargs):
        logging.info(f"开始执行文件操作: {self.func.__name__}")
        result = self.func(*args, **kwargs)
        logging.info(f"完成文件操作: {self.func.__name__}")
        return result

def 启用调试模式():
    """启用详细日志记录"""
    logging.basicConfig(
        level=logging.DEBUG,
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    )
    print("[调试模式] 已启用详细日志记录")
    
def 检查资源完整性():
    """检查资源目录完整性"""
    缺失文件 = []
    必需文件 = ["小星星.mp3", "两只老虎.mp3"]
    
    for 文件 in 必需文件:
        if not os.path.exists(os.path.join("resources", 文件)):
            缺失文件.append(文件)
    
    if 缺失文件:
        logging.warning(f"发现缺失的资源文件: {缺失文件}")
    else:
        logging.info("所有必需资源文件完整")
    
    return len(缺失文件) == 0